using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace SH.Model
{
    public interface IStorehause
    {
        [Key]
        [Display(Name = "ID Number", Description = "Enter an integer between 0 and 99999")]
        [Range(0, 999999, ErrorMessageResourceType = typeof(Resource_ua_UA), ErrorMessageResourceName = "Storehause_Id_ErrorMessage")]
        int Id { get; set; }

        [Required]
        [Range(10000000, 9999999999, ErrorMessageResourceType = typeof (Resource_ua_UA), ErrorMessageResourceName = "Storehause_Edrpou_ErrorMessage")]
        int Edrpou { get; set; }

        [Required]
        [MinLength(3, ErrorMessageResourceType = typeof (Resource_ua_UA), ErrorMessageResourceName = "Storehause_FIO_Min_ErrorMessage")]
        [MaxLength(170)]
        string Name { get; set; }

        [DataType(DataType.EmailAddress)]
        [StringLength(50, ErrorMessageResourceType = typeof (Resource_ua_UA), ErrorMessageResourceName = "Storehause_FIO_Min_ErrorMessage", MinimumLength = 7)]
        string Email { get; set; }

        [Range(1000000, 999999999, ErrorMessageResourceType = typeof (Resource_ua_UA), ErrorMessageResourceName = "Storehause_Phone_ErrorMessage")]
        int? Phone { get; set; }

        [Required]
        [DefaultValue(1000)]
        [Range(100, 999999, ErrorMessageResourceType = typeof (Resource_ua_UA), ErrorMessageResourceName = "Storehause_Capacity_ErrorMessage")]
        int Capacity { get; set; }

        [MinLength(5, ErrorMessageResourceType = typeof (Resource_ua_UA), ErrorMessageResourceName = "Storehause_FIO_Min_ErrorMessage")]
        [MaxLength(100)]
        string Director { get; set; }

        [MinLength(5, ErrorMessageResourceType = typeof (Resource_ua_UA), ErrorMessageResourceName = "Storehause_FIO_Min_ErrorMessage")]
        [MaxLength(100)]
        string ChifAccountant { get; set; }

        #region ForeginKeys

        List<Certificate> Certificates { get; set; }

        [Required]
        Region Region { get; set; }

        #endregion
    }
}